home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.22
/
propgadtest
/
propgadtest.p
< prev
next >
Wrap
Text File
|
1995-04-23
|
5KB
|
167 lines
PROGRAM PropTest;
{ *************************
** ©1993 by BOMBERSOFT **
** **
** G I F T W A R E **
** **
************************* }
{$OPT q}
USES Graphics;
FROM MyTools USES ToolGad;
CONST
MaxTests = 25;
MaxShow = 12;
titel = "PropGadTest V1.01 - GIFTWARE !";
TYPE
plane = ARRAY[1..5] OF WORD;
feld = ARRAY[1..MaxTests] OF STRING;
VAR
wp : ^Window;
msg : ^IntuiMessage;
done : BOOLEAN;
KlickG : ^Gadget;
GadNum : CARDINAL;
pi : PropInfo;
g : ARRAY[1..3] OF Gadget;
img,img1,img2 : Image;
class,err,i,j,k : LONG;
ds : feld;
bor : Border;
dat,dat1 : ^Plane;
rp : p_RastPort;
PROCEDURE Zeige;
BEGIN
i:=Round(pi.VertPot/(MAXBODY/(MaxTests-(MaxShow))))+1;
k := 27;
FOR j := i TO i+11 DO
BEGIN
Move(rp,10,k);
err := _Text(rp,ds[j],Length(ds[j]));
k := k + 9;
END;
END;
PROCEDURE abi;
BEGIN
j:=Round(MAXPOT/MaxTests);
k:=pi.VertPot+Round(MAXBODY/(MaxTests-MaxShow));
IF k>MAXPOT THEN k:=MAXPOT;
pi.VertPot:=k;
RefreshGadget(wp,^g[1],NIL);
gbord(wp,^g[1]);
Zeige;
END;
PROCEDURE aufi;
BEGIN
j:=Round(MAXPOT/MaxTests);
k:=pi.VertPot-Round(MAXBODY/(MaxTests-MaxShow));
IF k<0 THEN k:=0;
pi.VertPot:=k;
RefreshGadget(wp,^g[1],NIL);
gbord(wp,^g[1]);
Zeige;
END;
BEGIN
dat:=PTR(Alloc_Mem(SizeOf(Plane),2));
dat^:=Plane( %0000000110000000,
%0000001111000000,
%0000011111100000,
%0000111111110000,
%0001111111111000);
img1:=Image(1,2,16,5,1,dat,1,0,NIL);
dat1:=PTR(Alloc_Mem(SizeOf(Plane),2));
dat1^:=Plane(%0001111111111000,
%0000111111110000,
%0000011111100000,
%0000001111000000,
%0000000110000000);
img2:=Image(1,2,16,5,1,dat1,1,0,NIL);
ds:=feld("PropGadTest V1.01 (GIFTWARE) ",
" ",
"©1993 by Björn Schotte ",
"++++++++++++++++++++++ ",
" ",
"Mit den beiden Pfeil-Gadgets kannst Du ",
"rauf oder runterblättern (jew. 1 Eintrag). ",
"Schiebst Du jedoch das PropGadget, so ",
"verschiebt sich der Text auch. Dies wird ",
"durch das Flag FOLLOWMOUSE bewerkstelligt. ",
" ",
"Special Greetings fly to: ",
" ",
"Steppenbrand/Diesel, Røgersøft, Perfect Soft,",
"und alle anderen, die ich vergessen hab !! ",
" ",
" ",
"Ach ja, noch was: ",
" ",
"Für das einzelne Verschieben des Textes per ",
"Pfeilgadgets hab ich knapp 2 Stunden ge- ",
"braucht (scheið®þ¤ PropInfo !!) !! ",
" ",
" ",
" ---- E N D E ---- ");
wp:=Open_Window(0,0,410,135,1,_CLOSEWINDOW+GADGETUP+MOUSEMOVE,WINDOWCLOSE+
WINDOWDRAG+WINDOWDEPTH+SMART_REFRESH+NOCAREREFRESH+ACTIVATE,titel,NIL,0,0,0,0);
rp:=wp^.RPort;
SetDrMd(rp,JAM2);
SetAPen(rp,1);
pi:=PropInfo(AUTOKNOB+FREEVERT,0,0,0,Round(MAXBODY*(MaxShow/MaxTests)),
0,0,0,0,0,0);
g[1]:=Gadget(^g[2],380,18,18,95,0,FOLLOWMOUSE,PROPGADGET,^img,NIL,NIL,0,
^pi,1,NIL);
g[2]:=Gadget(^g[3],
380,113,18,9,GADGIMAGE,RELVERIFY,BOOLGADGET,^img1,NIL,NIL,0,
NIL,2,NIL);
g[3]:=Gadget(NIL,
380,122,18,9,GADGIMAGE,RELVERIFY,BOOLGADGET,^img2,NIL,NIL,0,
NIL,3,NIL);
FOR i:=1 TO 3 DO err := AddGadget(wp,^g[i],0);
RefreshGadgets(wp^.FirstGadget,wp,NIL);
FOR i:=1 TO 3 DO gbord(wp,^g[i]);
umrandung(wp,2,1,6,18,374,113);
Zeige;
done:=FALSE;
REPEAT
msg:=p_IntuiMessage(WaitPort(wp^.UserPort));
msg:=p_IntuiMessage(GetMsg(wp^.UserPort));
class:=msg^.Class;
IF class=GADGETUP THEN
BEGIN
KlickG:=msg^.IAddress;
GadNum:=KlickG^.GadgetID;
END;
ReplyMsg(p_Message(msg));
CASE class OF
_CLOSEWINDOW : done:=TRUE;
GADGETUP:
CASE GadNum OF
2: aufi;
3: abi;
ELSE END;
MOUSEMOVE:
BEGIN
Zeige;
END;
ELSE END;
UNTIL done;
END.